Vue.js学习笔记

v-bind

绑定属性,代码:

  • v-bind:href
  • v-bind:src
  • v-bind:class
var app3 = new Vue({
    el: '#app3',
    data: {
        target_location: 'https://baidu.com',
        target_name: '百度一下',
        img_location: '../img/bing-0615.jpeg',
        isActive: true
    }
});
<!doctype html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>v-bind的使用</title>
    <style>
        .active {
            background-color: #00b3ee;
        }
    </style>
</head>
<body>

<div id="app3">
    跳转到 <a v-bind:href="target_location" target="_blank">{{target_name}}</a><br>
    <a :class="{active: isActive}">Click me!</a>
    图片:
    <img alt="沙丘上的日落" v-bind:src="img_location"/>
</div>

<script src="../lib/vue.js"></script>
<script src="../js/main.js"></script>
</body>
</html>

v-on

绑定动作:代码

  • v-on.prevent
var app4 = new Vue({
    el: '#app4',
    data: {},
    methods: {
        onEnter: function () {
            console.log("mouse enter");
        },
        onLeave: function () {
            console.log("mouse leave");
        },
        onSubmit: function () {
            console.log("已经提交!");
        }
    }
});
<!doctype html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>v-on的使用</title>
</head>
<body>

<div id="app4">

    <form @keyup.enter="onEnter" v-on:submit.prevent="onSubmit">
        <!-- prevent:抑制默认行为 -->
        <input type="text"/>
        <button type="submit">提交</button>
    </form>

    <button v-on="{mouseenter: onEnter, mouseleave: onLeave}">测试按钮</button>
</div>

<script src="../lib/vue.js"></script>
<script src="../js/main.js"></script>
</body>
</html>

v-model

绑定数据:

  • v-model.trim
  • v-model.number
  • v-model.lazy
  • input
  • select
  • textarea
var app5 = new Vue({
    el: '#app5',
    data: {
        name: 'wang',
        price: 22,
        sex: 'M',
        hobby: [],
        from:1
    }
});
<!doctype html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>v-model的使用</title>
</head>
<body>

<div id="app5">
    <input type="text" v-model.trim="name"><br>
    <pre>{{name}}</pre>
    <span>{{name}}</span>

    <input type="text" v-model.number="price"><br>
    <span>{{price}}</span>

    男
    <input v-model="sex" value="F" type="radio">
    女
    <input v-model="sex" value="M" type="radio">\
    {{sex}}

    男
    <input v-model="hobby" value="F" type="checkbox">
    女
    <input v-model="hobby" value="M" type="checkbox">\
    {{hobby}}

    <br>

    <textarea></textarea>

    <select v-model="from" multiple>
        <option value="1">第一</option>
        <option value="2">第二</option>
    </select>
    {{from}}
</div>

<script src="../lib/vue.js"></script>
<script src="../js/main.js"></script>
</body>
</html>

》》》Vue.js表单输入绑定

流程控制和计算属性

  • v-if
  • v-else-if
  • v-else
  • computed
var app7 = new Vue({
    el: '#app7',
    data: {
        role: 'hr-min',
        math: 90,
        Chinese: 100,
        English: 80,
    },
    computed: {
        sum: function () {
            return this.math + this.Chinese + this.English;
        },
        average: function () {
            return Math.round(this.sum / 3);
        }
    }
});
<!doctype html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Vue.js流程控制</title>
</head>
<body>

<div id="app7">
    <div v-if="role == 'admin'">
        管理员你好!
    </div>
    <div v-else-if="role == 'hr' || role == 'hr-min'">
        人事你好!
    </div>
    <div v-else>
        当前角色没有访问权限!
    </div>

    <br>

    <table border="1">
        <thead>
        <tr>
            <td>学科</td>
            <td>成绩</td>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>数学</td>
            <td><input type="text" v-model.number="math"></td>
        </tr>
        <tr>
            <td>语文</td>
            <td><input type="text" v-model.number="Chinese"></td>
        </tr>
        <tr>
            <td>英语</td>
            <td><input type="text" v-model.numer="English"></td>
        </tr>
        <tr>
            <td>总分</td>
            <td>{{sum}}</td>
        </tr>
        <tr>
            <td>平均分</td>
            <td>{{average}}</td>
        </tr>
        </tbody>
    </table>
</div>

<script src="../lib/vue.js"></script>
<script src="../js/main.js"></script>
</body>
</html>

KannaMakino
0 声望1 粉丝

-爱代码,爱生活。


下一篇 »
Vim常用命令